/*
 * Golosina.h
 *
 *  Created on: 23/10/2013
 *      Author: fernando
 *
 *  Clase padre de todos los tipos de golosina, provee las funciones en comun
 *  a las mismas.
 */

#ifndef GOLOSINA_H_
#define GOLOSINA_H_


#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include <vector>
#include <string>

const int VIOLETA = 5;
const int AZUL = 4;
const int VERDE = 3;
const int AMARILLO = 2;
const int ROJO = 1;

class Golosina {
public:
	Golosina();
	virtual ~Golosina();
	void dibujar(SDL_Surface* screen, bool destruir);
	//Metodo virtual a implementar en las clases hijas
	virtual void setImagen() = 0;
	void handleInput(SDL_Event event);
	void move();
	void setPosicion(unsigned int x, unsigned int y);
	unsigned int getPosX();
	unsigned int getPosY();
	SDL_Surface* getImagen();
	int getColor();

protected:
	int color;
	SDL_Surface* imagen;
	unsigned int posX;
	unsigned int posY;
	std::vector<SDL_Surface*> secDestruccion;
	std::string itoa(int n);

private:
	Golosina(const Golosina& golosina);
};

#endif /* GOLOSINA_H_ */
